Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

"ΚΡΥΨΙΜΟ" Web Services...

Îåêßíçóå áðü ôï ìÝëïò m_stratigos. Τελευταία δημοσίευση από το μέλος KelMan στις 14-06-2007, 11:20. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-06-2007, 19:39 32902

    "ΚΡΥΨΙΜΟ" Web Services...

    Ξέρει κανένας εαν υπάρχει κάποιος τρόπος να "κρύψω" ένα webservice η τουλάχιστον τα Webservice methods του; Έχω δημιουργήσει ένα webservice του οποίου τα methods θέλω να χρησιμοποιώ από ένα Windows application. Όλα καλά μέχρι εδώ χωρίς προβλήματα. Τώρα όμως θέλω να εξασφαλίσω οτι τα methods που webservice μπορεί ΜΟΝΟ αυτό το application να τα καλέσει και να μην είναι publicly available... Πώς μπορώ να το κάνω αυτό;

  •  13-06-2007, 20:08 32903 σε απάντηση της 32902

    Απ: "ΚΡΥΨΙΜΟ" Web Services...

    Βασικά... δεν μπορείς. Από τη στιγμή που κάποιος γνωρίζει το endpoint, μπορεί να συνδεθεί σε αυτό. Βέβαια, δεν είναι όλα τα web services διαθέσιμα για κοινή χρήση, όπως και πολλά web sites έχουν περιοχές/σελίδες που δεν μπορεί να μπει ο καθένας. Το πρόβλημα λύνεται μέσω authentication και authorization. Πρώτα το service βλέπει ποιός το καλεί και κατόπιν του δίνει τη δυνατότητα να πάρει τις πληροφορίες που δικαιούται. Αυτό μπορεί να γίνει είτε με τον επίσημο τρόπο που παρέχει το WS-Security πρότυπο ή με κάποιο ...custom τρόπο όπως:

    • Να προσθέσεις credential πληροφορίες (username και password) σε κάθε ένα web method ή στο SOAP header
    • Να βάλεις ένα login web method που θα παρέχει στον χρήστη του web service ένα token το οποίο θα χρησιμοποιείται για τις μετέπειτα κλήσεις στα web methods

     


    Vir prudens non contra ventum mingit
  •  14-06-2007, 09:48 32911 σε απάντηση της 32903

    Απ: "ΚΡΥΨΙΜΟ" Web Services...

    Έτσι είναι τα πράγματα. Μόνο με authentication/authorization/encryption θα καταφέρεις να εξασφαλίσεις το service σου.

    Απλά, σαν επιπλέον ασφάλεια, στο WCF μπορείς να απενεργοποιήσεις την διάθεση metadata από το service σου. Ουσιαστικά το WSDL description δεν θα δημοσιεύεται, με αποτέλεσμα να κάνεις τη ζωή αυτού που θέλει να το καλέσει λίγο πιο δύσκολη. Από μόνο του όμως αυτό δεν είναι αρκετό. Γίνεται με το serviceMetadata behavior, ως εξής:

            <behaviors>
                <serviceBehaviors>
                    <behavior name="MyServiceBehaviors">
                        <serviceMetadata httpGetEnabled="false" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>

    Δυστηχώς δεν γνωρίζω πως ή αν γίνεται σε ASP.NET Web Service.

    Edited: Για την ακρίβεια, αυτή είναι και η default συμπεριφορά στο WCF. Δηλαδή αν δεν βάλεις καθόλου το παραπάνω configuration, δεν θα έχεις WSDL description διαθέσιμο. Αν θέλεις να το ενεργοποιήσεις, γράφεις το παραπάνω με httpGetEnabled="true".


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  14-06-2007, 11:20 32912 σε απάντηση της 32911

    Απ: "ΚΡΥΨΙΜΟ" Web Services...

    Την τεχνική του token είχα χρησιμοποιήσει πριν τρία χρόνια περίπου. Τότε την είχα επιλέξει γιατί τα διάφορα WS-* δεν είχαν προχωρήσει πολύ ως πρότυπα ενώ παράλληλα στην TechEd 2004 είχε παρουσιαστεί το IssueVision, ένα sample application που την υλοποιούσε. Είδα ότι για τα δικές μου ανάγκες με κάλυπτε πλήρως.

    Το IssueVision έχει παλιώσει πλέον και είναι λίγο δύσκολο να το βρεις. Υπήρχε στο www.windowsforms.net αλλά μετά τις τελευταίες αλλαγές (που έγινε www.windowsclient.net) έχουν χαθεί τα links. Μπορείς όμως να δοκιμάσεις τα παρακάτω:

     


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems